package com.zeng.sim.support.headStrategy;

import com.zeng.sim.util.SimConstant;

/**
 * 报文头策略
 *
 * @author zengwanlin
 * @date 2023-12-25T15:03
 */
public interface IHeadStrategy {

    /**
     * 是否支持（客户端调用）
     * @param headStrategy 当前消息头策略
     * @return
     */
    boolean support(SimConstant.HeadStrategy headStrategy);

    /**
     * 是否支持（服务端调用）
     * @param msgContent 报文内容
     * @return
     */
    boolean support(String msgContent);

    /**
     * 格式化请求报文
     * <p>
     * 追加报文头
     * @param msgContent
     * @param charsetName
     * @return
     */
    String appendHead(String msgContent, String charsetName);

    /**
     * 解析请求报文
     * <p>
     * 删除报文头
     * @param msgContent
     * @return
     */
    String deleteHead(String msgContent);

}
